home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / ADFWrite.AMOS / ADFWrite.amosSourceCode
Encoding:
AMOS Source Code  |  1998-07-14  |  1.9 KB  |  88 lines

  1. Screen Open 0,640,256,2,$8000
  2. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  3. Dev Open 0,"trackdisk.device",128,0,0
  4. Reserve As Chip Work 10,100000
  5.  Extension_8_0456 "ram:bckid.adf",9
  6. ST=Start(9)+8
  7. IMG=ST+160*4
  8. 'For TRK=0 To 2
  9. '  Add IMG,Deek(ST+2+TRK*4)
  10. 'Next  
  11. For TRK=0 To 159
  12.   SYNC=Deek(ST+TRK*4) : LE=Deek(ST+2+TRK*4)
  13.   If SYNC=0
  14.     Print "Writing Track";TRK
  15.     DISKFORMAT[IMG,LE,TRK]
  16.     DISKFLUSH
  17.   Else 
  18.     Print "Writing Track";TRK;" (raw) "
  19.     DISKRAWWRITE[IMG,LE,TRK,SYNC]
  20. '    DISKFLUSH 
  21. '    DISKRAWREAD[Start(10),14000,TRK]
  22. '    Wsave "ram:test",10 
  23. '    Wait Key  
  24.   End If 
  25.   Add IMG,LE
  26. Next 
  27. IO=Dev Base(0)
  28. Loke IO+36,0
  29. Dev Do 0,9
  30. Dev Close 
  31. End 
  32. Procedure DISKWRITE[AD,LE,OS]
  33.   IO=Dev Base(0)
  34.   Loke IO+36,LE : Loke IO+40,AD : Loke IO+44,OS*512
  35.   Dev Do 0,3
  36. End Proc
  37. Procedure DISKFORMAT[AD,LE,OS]
  38.   IO=Dev Base(0)
  39.   Loke IO+36,LE : Loke IO+40,AD : Loke IO+44,OS*512*11
  40.   Dev Do 0,11
  41. End Proc
  42. Procedure DISKRAWWRITE[AD,LE,OS,SY]
  43.   IO=Dev Base(0)
  44.   BU=Start(10)
  45.   NNN=LE-1000
  46.   SYNC$= Extension_8_08D2($AAAAAAAA)+ Extension_8_08C4(SY)+ Extension_8_08C4(SY)
  47. '  SYNC$=Chr.w$(SY)+Chr.w$(SY) 
  48.   RETRY=0
  49.   Repeat 
  50.     Repeat 
  51.       Loke IO+36,1
  52.       Dev Do 0,9
  53.       Poke$ BU,SYNC$
  54.       Copy AD,AD+LE To BU+8
  55.       Poke IO+30,16
  56.       Loke IO+36,NNN : Loke IO+40,BU : Loke IO+44,OS
  57.       Dev Do 0,17
  58.       Loke IO+36,0
  59.       Dev Do 0,9
  60.       Poke IO+30,16
  61.       Loke IO+36,20000 : Loke IO+40,BU : Loke IO+44,OS
  62.       Dev Do 0,16
  63.       If RETRY>0
  64.         Print "R";
  65.         Dec RETRY
  66.       Else 
  67.         Print ".";
  68.         Add NNN,-100
  69.         RETRY=0
  70.       End If 
  71.     Until Hunt(BU To BU+20000,SYNC$)
  72.     Print ":";
  73.     RETRY=5
  74. '    Poke IO+30,16 
  75. '    Loke IO+36,20000 : Loke IO+40,BU : Loke IO+44,OS
  76. '    Dev Do 0,16 
  77.   Until Hunt(BU To BU+20000,SYNC$)
  78.   Print NNN
  79. End Proc
  80. Procedure DISKRAWREAD[AD,LE,OS]
  81.   IO=Dev Base(0)
  82.   Poke IO+30,32
  83.   Loke IO+36,LE : Loke IO+40,AD : Loke IO+44,OS
  84.   Dev Do 0,16
  85. End Proc
  86. Procedure DISKFLUSH
  87.   Dev Do 0,4
  88. End Proc